/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package mx.unam.fciencias.ActividadesCulturales.services;

import java.util.List;
import mx.unam.fciencias.ActividadesCulturales.services.DAO.EspacioDAO;
import mx.unam.fciencias.actividadesculturales.entidades.db.Espacio;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

/**
 * Capa de Negocio para comunicarse con la capa de datos de la entidad academica.
 * @author lumartin
 */
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public class ServicioEspacio {

    /** Acceso a datos de espacio. */
    private EspacioDAO espacioDAO;

    /**
     * Obtiene a espacioDAO.
     * @return espacioDAO.
     */
    public EspacioDAO getEspacioDAO() {
        return espacioDAO;
    }

    /**
     * Asigna un espacioDAO
     * @param espacioDAO
     */
    public void setEspacioDAO(EspacioDAO espacioDAO) {
        this.espacioDAO = espacioDAO;
    }

    /**
     * Obtiene un espacio a partir de su identificador.
     * @param id_espacio el identificador del espacio.
     * @return el espacio.
     */
    public Espacio getById(Integer id_espacio) {
        return espacioDAO.getEspacio(id_espacio);
    }

    /**
     * Obtiene los espacios a partir de su nombre o tipo.
     * @param nombreOtipo de los espacios.
     * @return la lista de los espacios.
     */
    public List<Espacio> getEspacio(String nombreOtipo) {
        return espacioDAO.getEspacios(nombreOtipo);
    }

    /**
     * Guarda o actualiza un espacio.
     * @param espacio a guardar.
     * @return true si se guardo correctamente false si no.
     */
    public boolean guarda(Espacio espacio) {
        return espacioDAO.guardar(espacio);
    }
}
